O(2^N)